#ifndef CUBICSPLINE_H
#define CUBICSPLINE_H

#include <QVector>

class CubicSpline {
public:
    // 构造函数
    CubicSpline(const QVector<double>& x, const QVector<double>& y);

    // 插值函数
    double interpolate(double xi);

private:
    int n; // 分段数
    QVector<double> x; // 节点
    QVector<double> y; // 数据点
    QVector<double> d2y; // 二阶导数

    // 计算二阶导数
    void computeSecondDerivatives();

    // 找到 xi 所在的区间
    int findInterval(double xi);
};

#endif // CUBICSPLINE_H
